<?php

if (!defined('BASEPATH'))
    exit('No direct script access allowed');

class Usuario extends MY_Controller {

    function __construct() {
        parent::__construct();
        $this->lang->load('panel_' . $this->config->item('language'), $this->config->item('language'));
        $this->lang->load('panel_usuario_' . $this->config->item('language'), $this->config->item('language'));
    }
    
    public function index() {
    }
    
    public function perfil(){
        $this->title = ulang('perfil_del_usuario').$this->title;
        
        $this->load->model('usuario_model');
        
        $this->load->library('form_validation');
        if ($this->form_validation->run('v_perfil') == true) {
            $this->load->library('Archivos');
            //preparamos los datos
            $data = array('origen' => 'perfil', 
                'datos' => $_POST, 
                'ruta_avatar' => $this->archivos->upl_avatar());
            
            $this->usuario_model->setUsuario($data);
            $this->data['success'] = ulang('mensaje_success_general');
        }
        $this->data['error'] = validation_errors();
        $this->data['infousuario'] = reset($this->usuario_model->getUsuario(array('usu_id' => $this->session->userdata('usu_id'))));
        $this->_renderback('usuario/perfil');
    }
    
    public function empresas($paso = null, $idempresa = null){
        $this->title = ulang('empresas').$this->title;
        $this->load->model('empresa_model');
        $url_pagina = "";
        $accion = $paso == null ? 'consultar' : $idempresa == null ? 'crear' : 'editar';
        $wizard_active = $paso != null ? substr($paso, -1, 1) : 1;
        
        if($paso == null){//consultamos
            $this->data['infoempresa'] = $this->empresa_model->getEmpresa();
            $this->data['infoempresapropios'] = $this->empresa_model->getEmpresa(array('propios' => true));
            if(count($this->data['infoempresa']) > 0){
                $url_pagina = 'usuario/empresas/tabla_empresas';
            }else{
                //si no hay empresas vamos directamente a crear una
                redirect(PANEL.strtolower(__CLASS__)."/".__FUNCTION__."/paso1");
            }
        }else if($paso == 'paso1'){
            if(!$this->empresa_model->is_empresa_propia($idempresa)){redirect(PANEL.strtolower(__CLASS__)."/".__FUNCTION__);}
            if (!empty($_POST)) {
                if($this->input->post('emp_nombre') != ''){
                    $this->data['empresas_encontradas'] = $this->empresa_model->get_empresas_similares(array('emp_nombre' => $this->input->post('emp_nombre')));
                    if(count($this->data['empresas_encontradas']) == 0 || $this->input->post('validaciones') == "N"){
                        $array_empresas = array(
                            'emp_nombre' => $this->input->post('emp_nombre'), 
                            'emp_slug' => $this->general->_set_slug_empresa(slug($this->input->post('emp_nombre'))),
                            'emp_fk_usuario' => $this->session->userdata('usu_id'), 
                            'emp_feccre' => date('Y-m-d H:i:s'), 
                            'emp_usucre' => $this->session->userdata('usu_id')
                        );
                        $id_empresa_creada = $this->empresa_model->setEmpresa($array_empresas, null, null, $idempresa);
                        if($id_empresa_creada == null){
                            redirect(PANEL.strtolower(__CLASS__)."/".__FUNCTION__);
                        }
                        redirect(PANEL.strtolower(__CLASS__)."/".__FUNCTION__."/paso2/".$id_empresa_creada);
                    }
                }else{
                    $this->data['error'] = ulang('debes_rellenar_la_el_nombre_de_la_empresa');
                }
            }
            if($idempresa != null){
                $this->data['infoempresa'] = reset($this->empresa_model->getEmpresa(array('emp_id' => $idempresa)));
                $this->data['idempresa'] = $idempresa;
            }
            $this->javascript2[] = PLUGINS . 'bootstrap/js/bootstrap2-typeahead.min.js';
            $url_pagina = 'usuario/empresas/wizard_inicio';
        }else if($paso == 'paso2'){
            if(!$this->empresa_model->is_empresa_propia($idempresa)){redirect(PANEL.strtolower(__CLASS__)."/".__FUNCTION__);}
            $this->load->library('form_validation');
            if ($this->form_validation->run('v_datos_empresa') == true) {
                $array_categoria = array();
                $array_empresa = array(
                    'emp_desc' => $this->input->post('emp_desc'),
                    'emp_direccion' => $this->input->post('emp_direccion'),
                    'emp_codigo_postal' => $this->input->post('emp_codigo_postal'),
                    'emp_telefono' => $this->input->post('emp_telefono'),
                    'emp_web' => $this->input->post('emp_web'),
                    'emp_fk_municipio' => $this->input->post('emp_fk_municipio')
                );
                
                foreach($_POST['ece_fk_emp_categoria'] as $categoria){
                    $array_categoria[] = array('ece_fk_emp_categoria' => $categoria, 'ece_fk_empresa' => $idempresa);
                }
                //si no hemos seleccionado categoria lanzamos error
                if(count($array_categoria) == 0){
                    $this->data['error'] = ulang('debes_rellenar_la_categoria');
                }else{
                    $id_empresa_creada = $this->empresa_model->setEmpresa($array_empresa, $array_categoria, null, $idempresa);
                    if($id_empresa_creada == null){
                        redirect(PANEL.strtolower(__CLASS__)."/".__FUNCTION__);
                    }
                    redirect(PANEL.strtolower(__CLASS__)."/".__FUNCTION__."/paso3/".$idempresa);
                }
            }else{
                $this->data['error'] = validation_errors();
            }
            $this->data['infoempresa'] = reset($this->empresa_model->getEmpresa(array('emp_id' => $idempresa)));
            $this->data['infocategorias'] = $this->empresa_model->getCategorias();
            $this->load->model('zonas_model');
            $this->data['infomunicipio'] = $this->zonas_model->getMunicipio(array('mun_fk_provincia' => 7)); //baleares
            $url_pagina = 'usuario/empresas/wizard_info';
        }else if($paso == 'paso3'){
            if(!$this->empresa_model->is_empresa_propia($idempresa)){redirect(PANEL.strtolower(__CLASS__)."/".__FUNCTION__);}
            if(!empty($_FILES)) {
                $this->load->library('Archivos');
                //preparamos los datos
                $this->data['infoempresa'] = reset($this->empresa_model->getEmpresa(array('emp_id' => $idempresa)));
                $info_imagenes = $this->archivos->upl_empresa($idempresa, $this->data['infoempresa']['emp_slug'].count($this->data['infoempresa']['d_imagenes']));
                if(count($info_imagenes) > 0){
                    $data = array(
                        'emi_url' => $info_imagenes['url'], 
                        'emi_thumb' => $info_imagenes['url_thumb'], 
                        'emi_fk_empresa' => $idempresa, 
                        'emi_feccre' => date('Y-m-d H:i:s'), 
                        'emi_usucre' => $this->session->userdata('usu_id'));

                    $this->empresa_model->setEmpresa(null, null, $data, $idempresa);
                }else{
                    $this->data['error'] = ulang('no_se_ha_seleccionado_una_imagen');
                }
            }
            $this->javascript2[] = PLUGINS . 'jquery-mixitup/jquery.mixitup.min.js';
            $this->javascript2[] = PLUGINS . 'fancybox/source/jquery.fancybox.pack.js';
            $this->css[] = PLUGINS . 'fancybox/source/jquery.fancybox.css';
            $this->css[] = CSSBACK . 'pages/portfolio.css';
            //volvemos a llamarlo para traer las nuevas imagenes subidas
            $this->data['infoempresa'] = reset($this->empresa_model->getEmpresa(array('emp_id' => $idempresa)));
            $url_pagina = 'usuario/empresas/wizard_fotos';
        }else if($paso == 'borrar'){
            if(!$this->empresa_model->is_empresa_propia($idempresa)){redirect(PANEL.strtolower(__CLASS__)."/".__FUNCTION__);}
            $resultado = $this->empresa_model->borrar_empresa($idempresa);
            if($resultado != null){
                $this->session->set_flashdata('error', ulang('se_ha_producido_un_error_al_borrar_la_empresa'));
            }else{
                $this->session->set_flashdata('success', ulang('la_empresa_se_ha_borrado_correctamente'));
            }
            redirect(PANEL.strtolower(__CLASS__)."/".__FUNCTION__);
        }
        $this->data['wizard'] = $this->load->view('usuario/empresas/pasos', array('active' => $wizard_active, 'idempresa' => $idempresa, 'accion' => $accion), true);
        $this->_renderback($url_pagina);
    }
    
    public function borrar_imagen($idempresa, $idimagen){
        $this->load->model('empresa_model');
        if(!$this->empresa_model->is_empresa_propia($idempresa)){redirect(PANEL.strtolower(__CLASS__)."/empresas");}
        $this->empresa_model->borrar_imagen($idempresa, $idimagen);
        redirect(PANEL.strtolower(__CLASS__)."/".__FUNCTION__."/paso3/".$idempresa);
    }
    
    public function activar_empresa($idempresa){
        if($this->session->userdata('usu_fk_rol') < 3){
            $this->load->model('empresa_model');
            $this->empresa_model->setEmpresa(array('emp_estado' => 'A'), null, null, $idempresa);
            redirect(PANEL.strtolower(__CLASS__)."/empresas");
        }
    }
    
    public function desactivar_empresa($idempresa){
        if($this->session->userdata('usu_fk_rol') < 3){
            $this->load->model('empresa_model');
            $this->empresa_model->setEmpresa(array('emp_estado' => 'P'), null, null, $idempresa);
            redirect(PANEL.strtolower(__CLASS__)."/empresas");
        }
    }
    
    public function comprobar_nombre_empresa(){
        $this->load->model('empresa_model');
        $array = array();
        foreach($this->empresa_model->getEmpresa() as $emp){
            $array[] = $emp['emp_nombre'];
        }
        echo json_encode($array);
    }
}